/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package wasolicitudesfiec.consultas.cambioCarrera;

import entidad.cambioCarrera.Solicitudcambiocarrera;
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.Vector;

/**
 *
 * @author kabad
 */
public class ConsultasSolicitudcambiocarrera {

    private Connection con;

    public boolean HLmodificarSolicitudcambiocarrera(Solicitudcambiocarrera val) throws SQLException {
        return modificarSolicitudcambiocarrera(val.getEstado(), val.getFkIdCarreraActual(), val.getFechacreacion(), val.getFkIdCarreraNueva(), val.getFechamodificacion(), val.getFkIdProfesor(), val.getFkIdSubDecano(), val.getFkParent(), val.getFkidestudiante(), val.getIdSolicitudCambioCarrera(), val.getInforme(), val.getNombreinstanciaproceso(), val.getObservacionCoordinador(), val.getObservacionEstudiante(), val.getObservacionSubDecano(), val.getResolucion(), val.getResultadoEvaluacion(),
                val.getFkIdSecretaria());
    }

    public void setConexion(Connection con) {
        this.con = con;
    }

    public boolean eliminarSolicitudcambiocarrera(int idSolicitudCambioCarrera) throws SQLException {
        boolean exitoOperacion = true;

        PreparedStatement proc = con.prepareStatement(
                "call eliminarSolicitudcambiocarrera(?) ");
        proc.setInt(1, idSolicitudCambioCarrera);
        proc.execute();
        return exitoOperacion;


    }

    public Solicitudcambiocarrera HLnuevoSolicitudcambiocarrera(Solicitudcambiocarrera val) throws SQLException {
        return nuevoSolicitudcambiocarrera(val.getEstado(), val.getFkIdCarreraActual(), val.getFkIdCarreraNueva(), val.getFechacreacion(), val.getFechamodificacion(), val.getFkIdProfesor(), val.getFkIdSubDecano(), val.getFkParent(), val.getInforme(), val.getFkidestudiante(), val.getNombreinstanciaproceso(), val.getObservacionCoordinador(), val.getObservacionEstudiante(), val.getObservacionSubDecano(), val.getResultadoEvaluacion(), val.getResolucion()
                ,val.getFkIdSecretaria());
    }

    public Solicitudcambiocarrera leerSolicitudcambiocarrera(int idSolicitudCambioCarrera) throws SQLException {
        Solicitudcambiocarrera reg = new Solicitudcambiocarrera();

        PreparedStatement proc = con.prepareStatement(
                "call leerSolicitudcambiocarrera(?) ");
        proc.setInt(1, idSolicitudCambioCarrera);
        ResultSet rs = proc.executeQuery();
        if (rs.next()) {
            reg.setEstado(rs.getString(1));
            reg.setFechacreacion(rs.getTimestamp(2));
            reg.setFechamodificacion(rs.getTimestamp(3));
            reg.setFkIdCarreraActual(rs.getInt(4));
            reg.setFkIdCarreraNueva(rs.getInt(5));
            reg.setFkIdProfesor(rs.getInt(6));
            reg.setFkIdSubDecano(rs.getInt(7));
            reg.setFkParent(rs.getInt(8));
            reg.setFkidestudiante(rs.getInt(9));
            reg.setIdSolicitudCambioCarrera(rs.getInt(10));
            reg.setInforme(rs.getString(11));
            reg.setNombreinstanciaproceso(rs.getString(12));
            reg.setObservacionCoordinador(rs.getString(13));
            reg.setObservacionEstudiante(rs.getString(14));
            reg.setObservacionSubDecano(rs.getString(15));
            reg.setResolucion(rs.getString(16));
            reg.setResultadoEvaluacion(rs.getString(17));
            reg.setFkIdSecretaria(rs.getInt(18));
        } else {
            reg = null;
        }
        return reg;


    }

    public boolean HLeliminarSolicitudcambiocarrera(Solicitudcambiocarrera val) throws SQLException {
        return eliminarSolicitudcambiocarrera(val.getIdSolicitudCambioCarrera());
    }

    public Solicitudcambiocarrera HLleerSolicitudcambiocarrera(Solicitudcambiocarrera val) throws SQLException {
        return leerSolicitudcambiocarrera(val.getIdSolicitudCambioCarrera());
    }

    public Vector<Solicitudcambiocarrera> leerVariosSolicitudcambiocarrera() throws SQLException {
        Vector<Solicitudcambiocarrera> datos = new Vector<Solicitudcambiocarrera>();
        Solicitudcambiocarrera reg;

        PreparedStatement proc = con.prepareStatement(
                "call leerVariosSolicitudcambiocarrera() ");
        ResultSet rs = proc.executeQuery();
        while (rs.next()) {
            reg = new Solicitudcambiocarrera();
            reg.setEstado(rs.getString(1));
            reg.setFechacreacion(rs.getTimestamp(2));
            reg.setFechamodificacion(rs.getTimestamp(3));
            reg.setFkIdCarreraActual(rs.getInt(4));
            reg.setFkIdCarreraNueva(rs.getInt(5));
            reg.setFkIdProfesor(rs.getInt(6));
            reg.setFkIdSubDecano(rs.getInt(7));
            reg.setFkParent(rs.getInt(8));
            reg.setFkidestudiante(rs.getInt(9));
            reg.setIdSolicitudCambioCarrera(rs.getInt(10));
            reg.setInforme(rs.getString(11));
            reg.setNombreinstanciaproceso(rs.getString(12));
            reg.setObservacionCoordinador(rs.getString(13));
            reg.setObservacionEstudiante(rs.getString(14));
            reg.setObservacionSubDecano(rs.getString(15));
            reg.setResolucion(rs.getString(16));
            reg.setResultadoEvaluacion(rs.getString(17));
                  reg.setFkIdSecretaria(rs.getInt(18));

            datos.add(reg);
        }//end while

        return datos;


    }

    public Vector<Solicitudcambiocarrera> HLleerVariosSolicitudcambiocarreraPorCategoria(int idCategoria, Solicitudcambiocarrera val) throws SQLException {
        return leerVariosSolicitudcambiocarrera();
    }

    public boolean modificarSolicitudcambiocarrera(String estado, int fkIdCarreraActual, Timestamp fechacreacion, int fkIdCarreraNueva,
            Timestamp fechamodificacion, int fkIdProfesor, int fkIdSubDecano, int fkParent, int fkidestudiante, int idSolicitudCambioCarrera,
            String informe, String nombreInstanciaProceso, String observacionCoordinador, String observacionEstudiante,
            String observacionSubDecano, String resolucion, String resultadoEvaluacion,int fkIdSecretaria) throws SQLException {
        boolean exitoOperacion = true;

        PreparedStatement proc = con.prepareStatement(
                "call modificarSolicitudcambiocarrera(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ");
        proc.setString(1, estado);
        proc.setInt(2, fkIdCarreraActual);
        proc.setTimestamp(3, fechacreacion);
        proc.setInt(4, fkIdCarreraNueva);
        proc.setTimestamp(5, fechamodificacion);
        proc.setInt(6, fkIdProfesor);
        proc.setInt(7, fkIdSubDecano);
        proc.setInt(8, fkParent);
        proc.setInt(9, fkidestudiante);
        proc.setInt(10, idSolicitudCambioCarrera);
        proc.setString(11, informe);
        proc.setString(12, nombreInstanciaProceso);
        proc.setString(13, observacionCoordinador);
        proc.setString(14, observacionEstudiante);
        proc.setString(15, observacionSubDecano);
        proc.setString(16, resolucion);
        proc.setString(17, resultadoEvaluacion);
        proc.setInt(18, fkIdSecretaria);
        proc.execute();
        return exitoOperacion;


    }

    public Solicitudcambiocarrera nuevoSolicitudcambiocarrera(String estado, int fkIdCarreraActual, int fkIdCarreraNueva, 
            Timestamp fechacreacion, Timestamp fechamodificacion, int fkIdProfesor, int fkIdSubDecano, int fkParent, String informe, 
            int fkidestudiante, String nombreInstanciaProceso, String observacionCoordinador, String observacionEstudiante, 
            String observacionSubDecano, String resultadoEvaluacion, String resolucion, int fkIdSecretaria) throws SQLException {
        Solicitudcambiocarrera reg = new Solicitudcambiocarrera();

        PreparedStatement proc = con.prepareStatement(
                "call nuevoSolicitudcambiocarrera(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ");
        proc.setString(1, estado);
        proc.setInt(2, fkIdCarreraActual);
        proc.setInt(3, fkIdCarreraNueva);
        proc.setTimestamp(4, fechacreacion);
        proc.setTimestamp(5, fechamodificacion);
        proc.setInt(6, fkIdProfesor);
        proc.setInt(7, fkIdSubDecano);
        proc.setInt(8, fkParent);
        proc.setString(9, informe);
        proc.setInt(10, fkidestudiante);
        proc.setString(11, nombreInstanciaProceso);
        proc.setString(12, observacionCoordinador);
        proc.setString(13, observacionEstudiante);
        proc.setString(14, observacionSubDecano);
        proc.setString(15, resultadoEvaluacion);
        proc.setString(16, resolucion);
        proc.setInt(17, fkIdSecretaria);

        ResultSet rs = proc.executeQuery();
        if (rs.next()) {
            reg.setEstado(rs.getString(1));
            reg.setFechacreacion(rs.getTimestamp(2));
            reg.setFechamodificacion(rs.getTimestamp(3));
            reg.setFkIdCarreraActual(rs.getInt(4));
            reg.setFkIdCarreraNueva(rs.getInt(5));
            reg.setFkIdProfesor(rs.getInt(6));
            reg.setFkIdSubDecano(rs.getInt(7));
            reg.setFkParent(rs.getInt(8));
            reg.setFkidestudiante(rs.getInt(9));
            reg.setIdSolicitudCambioCarrera(rs.getInt(10));
            reg.setInforme(rs.getString(11));
            reg.setNombreinstanciaproceso(rs.getString(12));
            reg.setObservacionCoordinador(rs.getString(13));
            reg.setObservacionEstudiante(rs.getString(14));
            reg.setObservacionSubDecano(rs.getString(15));
            reg.setResolucion(rs.getString(16));
            reg.setResultadoEvaluacion(rs.getString(17));
            reg.setFkIdSecretaria(rs.getInt(18));
        } else {
            reg = null;
        }
        return reg;


    }

    public Vector<Solicitudcambiocarrera> HLleerVariosSolicitudcambiocarrera(Solicitudcambiocarrera val) throws SQLException {
        return leerVariosSolicitudcambiocarrera();
    }

    public Solicitudcambiocarrera leerSolicitudcambiocarrera(int idEstudiante, String estado) throws SQLException {
        Solicitudcambiocarrera reg = new Solicitudcambiocarrera();

        PreparedStatement proc = con.prepareStatement(
                "call leerSolicitudcambiocarreraPorEstudiantePorEstado(?,?) ");
        proc.setInt(1, idEstudiante);
        proc.setString(2, estado);
        ResultSet rs = proc.executeQuery();
        if (rs.next()) {
            reg.setEstado(rs.getString(1));
            reg.setFechacreacion(rs.getTimestamp(2));
            reg.setFechamodificacion(rs.getTimestamp(3));
            reg.setFkIdCarreraActual(rs.getInt(4));
            reg.setFkIdCarreraNueva(rs.getInt(5));
            reg.setFkIdProfesor(rs.getInt(6));
            reg.setFkIdSubDecano(rs.getInt(7));
            reg.setFkParent(rs.getInt(8));
            reg.setFkidestudiante(rs.getInt(9));
            reg.setIdSolicitudCambioCarrera(rs.getInt(10));
            reg.setInforme(rs.getString(11));
            reg.setNombreinstanciaproceso(rs.getString(12));
            reg.setObservacionCoordinador(rs.getString(13));
            reg.setObservacionEstudiante(rs.getString(14));
            reg.setObservacionSubDecano(rs.getString(15));
            reg.setResolucion(rs.getString(16));
            reg.setResultadoEvaluacion(rs.getString(17));
            reg.setFkIdSecretaria(rs.getInt(18));

        } else {
            reg = null;
        }
        return reg;


    }
}
